integrate knu's suggestions

Andrew Cantino 9 years ago
parent
commit
933f1eb1f9

+ 11 - 3
app/controllers/concerns/sortable_table.rb

@@ -15,7 +15,7 @@ module SortableTable
15 15
   end
16 16
 
17 17
   def set_table_sort(sort_options)
18
-    valid_sorts = sort_options[:sorts] || raise("You must specify :sorts as an array of valid sort attributes.")
18
+    valid_sorts = sort_options[:sorts] or raise ArgumentError.new("You must specify :sorts as an array of valid sort attributes.")
19 19
     default = sort_options[:default] || { valid_sorts.first.to_sym => :desc }
20 20
 
21 21
     if params[:sort].present?
@@ -37,7 +37,15 @@ module SortableTable
37 37
   end
38 38
 
39 39
   module SortableTableHelper
40
-    def sortable_column(attribute, name = attribute.humanize, default_direction = 'desc')
40
+    # :call-seq:
41
+    #   sortable_column(attribute, default_direction = 'desc', name: attribute.humanize)
42
+    def sortable_column(attribute, default_direction = nil, options = nil)
43
+      if options.nil? && (options = Hash.try_convert(default_direction))
44
+        default_direction = nil
45
+      end
46
+      default_direction ||= 'desc'
47
+      options ||= {}
48
+      name = options[:name] || attribute.humanize
41 49
       selected = @table_sort_info[:attribute].to_s == attribute
42 50
       if selected
43 51
         direction = @table_sort_info[:direction]
@@ -50,4 +58,4 @@ module SortableTable
50 58
       link_to(name, url_for(sort: "#{attribute}.#{new_direction}"), class: classes)
51 59
     end
52 60
   end
53
-end
61
+end

+ 4 - 4
app/views/agents/_table.html.erb

@@ -1,11 +1,11 @@
1 1
 <div class='table-responsive'>
2 2
   <table class='table table-striped'>
3 3
     <tr>
4
-      <th><%= sortable_column 'name', 'Name', 'asc' %></th>
4
+      <th><%= sortable_column 'name', 'asc' %></th>
5 5
       <th>Schedule</th>
6
-      <th><%= sortable_column 'last_check_at', 'Last Check' %></th>
7
-      <th><%= sortable_column 'last_event_at', 'Last Event Out' %></th>
8
-      <th><%= sortable_column 'last_receive_at', 'Last Event In' %></th>
6
+      <th><%= sortable_column 'last_check_at', name: 'Last Check' %></th>
7
+      <th><%= sortable_column 'last_event_at', name: 'Last Event Out' %></th>
8
+      <th><%= sortable_column 'last_receive_at', name: 'Last Event In' %></th>
9 9
       <th>Events Created</th>
10 10
       <th>Working?</th>
11 11
       <th></th>

+ 1 - 1
app/views/scenarios/index.html.erb

@@ -12,7 +12,7 @@
12 12
 
13 13
       <table class='table table-striped'>
14 14
         <tr>
15
-          <th><%= sortable_column 'name', 'Name', 'asc' %></th>
15
+          <th><%= sortable_column 'name', 'asc' %></th>
16 16
           <th>Agents</th>
17 17
           <th><%= sortable_column 'public' %></th>
18 18
           <th></th>

+ 3 - 3
app/views/services/index.html.erb

@@ -25,9 +25,9 @@
25 25
       <div class='table-responsive'>
26 26
         <table class='table table-striped events'>
27 27
           <tr>
28
-            <th><%= sortable_column 'provider', 'Provider', 'asc' %></th>
29
-            <th><%= sortable_column 'name', 'Name', 'asc' %></th>
30
-            <th><%= sortable_column 'global', 'Global?' %></th>
28
+            <th><%= sortable_column 'provider', 'asc' %></th>
29
+            <th><%= sortable_column 'name', 'asc' %></th>
30
+            <th><%= sortable_column 'global', name: 'Global?' %></th>
31 31
             <th></th>
32 32
           </tr>
33 33
 

+ 2 - 2
app/views/user_credentials/index.html.erb

@@ -14,8 +14,8 @@
14 14
 
15 15
       <table class='table table-striped'>
16 16
         <tr>
17
-          <th><%= sortable_column 'credential_name', 'Name', 'asc' %></th>
18
-          <th><%= sortable_column 'credential_value', 'Value', 'asc' %></th>
17
+          <th><%= sortable_column 'credential_name', 'asc', name: 'Name'  %></th>
18
+          <th><%= sortable_column 'credential_value', 'asc', name: 'Value' %></th>
19 19
         </tr>
20 20
 
21 21
         <% @user_credentials.each do |user_credential| %>